/*******************************************************************************
* Copyright (c) 2006, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.parser.upc;

public class UPCNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCNoCastExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3,1,
            1,4,4,3,3,2,2,4,1,0,
            1,1,2,2,2,2,2,2,2,2,
            2,4,1,1,3,3,3,1,3,3,
            1,3,3,1,3,3,3,3,1,3,
            3,1,3,1,3,1,3,1,3,1,
            3,1,5,1,3,3,3,3,3,3,
            3,3,3,3,3,1,1,2,1,0,
            1,3,1,1,1,1,1,1,1,1,
            3,4,3,2,4,1,2,1,1,1,
            2,5,7,5,1,0,7,2,5,9,
            8,3,2,2,2,3,2,4,2,2,
            2,2,2,1,1,1,1,2,1,2,
            2,2,1,2,2,1,2,2,1,2,
            2,1,2,2,1,3,1,3,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6,
            8,0,0,1,1,3,3,3,0,1,
            0,1,2,4,2,1,1,1,3,1,
            1,2,3,7,8,0,1,0,1,3,
            1,3,1,1,1,1,1,1,3,1,
            1,1,1,1,3,1,2,2,1,5,
            3,1,3,5,1,3,1,3,2,4,
            3,5,4,6,6,3,5,1,3,4,
            5,6,0,1,2,1,3,1,1,3,
            2,1,1,1,1,2,1,2,3,1,
            1,1,3,1,2,2,2,3,4,5,
            1,1,7,3,0,0,1,1,3,3,
            4,1,1,2,3,2,3,2,1,0,
            1,2,1,1,1,1,1,2,1,3,
            6,4,2,4,1,1,1,1,1,2,
            4,2,4,2,4,1,1,2,1,1,
            1,3,3,2,1,3,2,3,2,3,
            2,2,11,10,10,9,10,9,9,8,
            10,9,9,8,9,8,8,7,10,9,
            9,8,9,8,8,7,1,1,-38,0,
            0,0,0,0,0,0,0,0,0,-127,
            0,0,0,0,0,0,0,0,0,-2,
            0,0,0,0,0,-129,0,-77,-81,-138,
            0,0,0,0,0,-60,0,0,0,0,
            0,0,0,0,0,0,-179,0,0,0,
            0,0,0,-172,0,0,0,0,0,0,
            -86,0,0,0,0,0,0,0,-39,0,
            -40,0,0,0,0,0,0,0,0,-154,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -61,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-190,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-145,
            0,0,-4,0,-88,-142,0,-18,-117,-180,
            0,0,0,0,0,-135,0,-196,-35,0,
            -203,0,0,0,0,0,-36,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-194,0,-209,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-213,0,
            0,0,0,0,0,0,0,0,0,0,
            -205,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-57,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-82,0,-79,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-89,-19,-84,0,0,0,-3,0,
            0,0,0,0,0,0,0,0,0,-20,
            0,0,0,0,0,0,0,0,0,-121,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -128,0,0,0,0,0,0,0,0,0,
            0,-96,0,0,0,0,0,0,0,0,
            -21,0,0,-43,0,0,0,0,0,0,
            0,0,0,0,-130,0,-141,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-30,
            0,0,0,0,0,0,0,0,0,0,
            -73,0,0,0,0,0,0,0,0,0,
            -62,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-63,0,0,0,0,0,0,0,0,
            0,0,-74,0,0,0,0,0,0,0,
            0,0,-64,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-65,0,0,0,0,0,0,
            0,0,0,0,-75,0,0,0,0,0,
            0,0,0,0,-66,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-67,0,0,0,0,
            0,0,0,0,0,0,-76,0,0,0,
            0,0,0,0,0,0,-68,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-69,0,0,
            0,0,0,0,0,0,0,0,-95,0,
            0,0,0,0,0,0,0,0,-70,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-71,
            0,0,0,0,0,0,0,0,0,0,
            -125,0,0,0,0,0,0,0,0,0,
            -72,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-134,0,0,0,0,0,0,0,0,
            0,0,-143,0,0,0,0,0,0,0,
            0,0,-157,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-158,0,0,0,0,0,0,
            0,0,0,0,-166,0,0,0,0,0,
            0,0,0,0,-193,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-202,0,0,0,0,0,
            0,0,0,0,0,-22,0,0,0,0,
            0,0,0,0,-5,0,0,0,0,0,
            0,0,-9,0,0,0,0,0,0,0,
            -208,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -214,0,0,0,0,0,0,0,0,0,
            0,-23,0,0,0,0,0,0,0,0,
            -6,0,0,0,0,0,0,0,-131,0,
            -132,0,-78,-93,0,-24,-222,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -165,0,-150,-144,-133,0,0,0,0,0,
            -122,0,-25,-184,0,-10,0,0,0,0,
            0,0,0,0,0,-26,0,0,-177,0,
            0,0,0,-113,-83,-27,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-161,-85,-155,0,0,-28,0,0,0,
            0,0,0,-44,0,0,0,0,0,0,
            0,0,0,0,-29,0,0,0,0,0,
            0,0,0,-94,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-192,0,0,
            0,0,0,-210,0,-7,0,0,0,0,
            0,0,0,-58,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-54,0,
            0,0,0,0,0,0,0,0,0,-199,
            0,0,-11,0,0,0,0,0,0,0,
            0,-55,0,0,0,0,0,0,0,0,
            0,0,-91,0,-56,0,0,0,0,0,
            0,0,0,0,0,-221,0,-136,0,0,
            0,0,0,0,0,-97,0,-98,0,-114,
            -207,0,0,-48,0,0,0,0,0,0,
            0,0,0,0,-52,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-99,-100,-101,0,0,-162,
            -102,0,0,-49,0,0,0,0,0,0,
            0,0,0,0,-50,0,0,0,0,0,
            0,0,0,0,0,-223,0,0,0,0,
            -51,0,0,0,0,0,0,0,0,0,
            0,-53,0,0,0,0,0,0,0,0,
            0,-216,-80,-87,0,-8,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-103,-151,0,-153,-104,0,0,0,0,
            0,-182,-90,0,-163,0,0,0,0,0,
            0,0,0,0,0,0,0,-92,-156,-126,
            0,0,0,0,0,0,0,0,0,0,
            0,-105,0,0,-183,0,0,0,0,-171,
            0,0,0,0,-106,0,0,0,0,-140,
            0,0,0,0,-124,0,0,0,0,0,
            0,0,-149,0,0,0,0,0,0,0,
            -169,0,-1,0,0,-107,0,0,-108,0,
            -109,0,-148,0,0,-160,0,0,0,0,
            0,0,0,-12,0,0,0,0,0,0,
            0,0,0,0,0,-110,0,0,-13,0,
            0,0,0,0,0,0,-14,0,0,0,
            0,0,0,0,-37,-45,0,0,0,0,
            0,0,0,-186,-164,0,-46,0,0,0,
            0,0,0,0,-47,0,0,0,0,0,
            0,0,0,-178,-15,0,0,0,0,0,
            0,0,-159,0,0,-16,0,0,0,0,
            0,0,0,0,0,0,-174,-111,-173,-17,
            0,-112,0,-181,0,0,-118,-31,0,0,
            0,-189,-32,-200,0,0,-120,-137,0,0,
            0,0,0,0,-170,0,0,0,0,0,
            0,0,-119,0,0,-33,0,0,0,0,
            -146,-152,0,0,0,-123,0,-34,-204,0,
            -167,0,-168,-185,0,0,-201,0,0,0,
            0,0,0,0,0,0,0,-139,0,0,
            0,0,0,-187,0,0,-115,0,0,0,
            0,0,0,0,0,-197,-198,0,-188,0,
            0,0,0,0,-195,0,0,0,-116,0,
            -147,-212,0,-175,0,-41,-176,-206,0,0,
            0,0,0,0,0,-217,0,0,0,0,
            0,-191,0,0,0,0,0,0,0,0,
            0,-42,0,0,0,0,0,-218,0,0,
            0,-59,0,0,0,0,0,0,-215,-211,
            -220,-219,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
	public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
	public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            89,11,105,22,22,21,21,46,46,72,
            72,1,1,2,2,2,2,3,3,3,
            4,5,5,5,5,5,5,5,5,62,
            62,73,6,6,6,6,6,6,6,6,
            6,6,6,7,8,8,8,8,9,9,
            9,10,10,10,12,12,12,12,12,13,
            13,13,14,14,15,15,16,16,17,17,
            18,18,19,19,20,20,20,20,20,20,
            20,20,20,20,20,20,106,31,30,90,
            90,74,74,47,107,107,107,107,107,107,
            107,108,108,108,109,109,114,114,115,115,
            110,110,111,111,111,117,117,112,112,112,
            112,112,113,113,113,113,113,116,116,27,
            27,27,27,27,33,33,33,80,80,75,
            75,75,75,76,76,76,77,77,77,78,
            78,78,79,79,79,118,118,119,119,120,
            34,36,36,36,36,36,56,57,57,57,
            57,57,57,57,57,57,57,57,57,66,
            63,63,91,92,68,68,64,64,64,69,
            81,81,82,82,70,70,70,37,93,93,
            83,84,84,84,65,65,94,85,85,86,
            86,71,71,23,24,24,24,35,53,53,
            39,39,39,39,42,42,44,40,40,41,
            45,45,121,121,43,122,122,95,95,28,
            28,28,28,28,28,28,28,28,87,54,
            54,54,54,29,59,59,58,58,58,60,
            60,55,55,96,96,52,52,61,61,61,
            48,48,48,49,50,50,50,51,51,51,
            51,67,67,32,32,38,98,97,97,97,
            97,88,99,100,100,101,101,102,102,123,
            123,124,124,125,125,125,125,127,127,126,
            126,126,128,129,129,89,89,2,2,2,
            6,6,6,6,6,6,23,23,25,25,
            26,26,103,103,103,107,130,130,130,130,
            130,130,130,112,112,112,112,112,112,112,
            112,112,112,112,112,112,112,112,112,112,
            112,112,112,112,112,112,112,131,131,1,
            1304,17,21,18,518,1295,44,670,654,1106,
            675,721,1186,1162,1236,1223,1277,1246,74,91,
            450,1811,135,213,326,327,80,1213,582,588,
            88,278,137,134,136,160,606,20,17,21,
            18,518,43,44,670,654,1106,675,721,1186,
            1162,1236,1223,1708,175,139,166,275,1796,1549,
            28,119,143,146,149,152,1717,431,231,191,
            31,191,31,513,1245,1273,1504,1533,1548,1184,
            542,20,17,21,18,518,1295,44,670,654,
            1106,424,721,1186,1162,1236,1223,1277,1246,74,
            281,606,20,17,21,18,518,43,44,670,
            654,1106,282,721,1186,1162,1236,1712,1717,351,
            20,17,21,18,518,1295,44,670,654,1106,
            424,721,1186,1162,1236,1223,1277,1246,74,281,
            225,179,25,277,24,583,176,287,59,53,
            815,282,396,1832,555,293,63,1717,915,443,
            526,191,1784,135,213,326,327,443,288,255,
            213,326,327,137,134,136,160,1570,274,1728,
            398,255,213,326,327,914,289,926,19,219,
            1450,221,1535,223,224,229,139,166,269,628,
            399,272,284,143,146,149,152,290,431,326,
            255,213,326,327,735,1245,1273,1504,1533,1548,
            1184,574,20,17,21,18,518,1295,44,670,
            654,1106,210,721,1186,1162,1236,1223,1277,1246,
            74,281,606,20,17,21,18,518,43,44,
            670,654,1106,282,721,1186,1162,1609,776,1717,
            281,20,17,21,18,518,1295,44,670,654,
            1106,1756,721,1186,1162,1236,1223,1277,1246,74,
            1221,194,239,615,78,661,276,294,291,606,
            20,17,21,18,518,1295,44,670,654,1106,
            193,721,1186,1162,1236,1223,1277,1246,74,91,
            766,20,17,21,18,518,1295,44,670,654,
            1106,1778,721,1186,1162,1236,1223,1277,1246,74,
            1580,470,20,17,21,18,518,43,44,670,
            654,1106,743,721,1186,1162,1236,1223,1277,1246,
            93,64,1179,334,606,20,17,21,18,518,
            43,44,1406,513,22,191,187,316,20,17,
            21,18,518,1295,44,670,654,1106,1613,721,
            1186,1162,1236,1223,1277,1246,74,1693,328,240,
            606,20,17,21,18,518,1295,44,670,654,
            1106,443,721,1186,1162,1236,1223,1277,1246,74,
            92,606,20,17,21,18,518,1295,44,670,
            654,1106,1244,721,1186,1162,1236,1223,1277,1246,
            74,85,606,20,17,21,18,518,1295,44,
            670,654,1106,443,721,1186,1162,1236,1223,1277,
            1246,74,84,606,20,17,21,18,518,1295,
            44,670,654,1106,1410,721,1186,1162,1236,1223,
            1277,1246,74,83,606,20,17,21,18,518,
            1295,44,670,654,1106,443,721,1186,1162,1236,
            1223,1277,1246,74,82,606,20,17,21,18,
            518,1295,44,670,654,1106,1787,721,1186,1162,
            1236,1223,1277,1246,74,81,606,20,17,21,
            18,518,1295,44,670,654,1106,443,721,1186,
            1162,1236,1223,1277,1246,74,80,606,20,17,
            21,18,518,1295,44,670,654,1106,1809,721,
            1186,1162,1236,1223,1277,1246,74,79,606,20,
            17,21,18,518,1295,44,670,654,1106,443,
            721,1186,1162,1236,1223,1277,1246,74,78,606,
            20,17,21,18,518,1295,44,670,654,1106,
            23,721,1186,1162,1236,1223,1277,1246,74,77,
            606,20,17,21,18,518,1295,44,670,654,
            1106,443,721,1186,1162,1236,1223,1277,1246,74,
            76,606,20,17,21,18,518,1295,44,670,
            654,1106,273,721,1186,1162,1236,1223,1277,1246,
            74,75,606,20,17,21,18,518,1295,44,
            670,654,1106,443,721,1186,1162,1236,1223,1277,
            1246,74,73,606,20,17,21,18,518,1295,
            44,670,654,1106,279,721,1186,1162,1236,1223,
            1277,1246,74,1814,606,20,17,21,18,518,
            1295,44,670,654,1106,443,721,1186,1162,1236,
            1223,1277,1246,74,1817,606,20,17,21,18,
            518,43,44,670,654,1106,280,721,1186,1162,
            1236,1223,1277,1246,93,606,20,17,21,18,
            518,43,44,670,654,1106,139,721,1186,1162,
            1236,1223,1277,1246,93,638,20,17,21,18,
            518,324,1818,606,20,17,21,18,518,43,
            40,606,20,17,21,18,518,43,44,670,
            654,1106,212,721,1186,1162,1236,1223,1277,1246,
            93,606,20,17,21,18,518,43,44,670,
            654,1106,349,721,1186,1162,1236,1223,1277,1246,
            93,670,20,17,21,18,518,322,1862,191,
            186,537,1752,88,225,179,16,606,20,17,
            21,18,518,43,44,670,654,1106,202,721,
            1186,1162,1236,1223,1277,1246,93,135,213,326,
            327,712,1727,152,398,191,188,138,134,136,
            160,743,510,6,113,1665,606,20,17,21,
            18,518,43,39,203,510,24,1743,1214,443,
            140,166,274,241,678,383,171,144,147,150,
            153,197,431,218,1450,221,1535,223,224,229,
            225,1565,267,628,399,272,260,263,135,213,
            326,327,941,814,88,264,28,230,142,134,
            136,160,1717,1684,606,20,17,21,18,518,
            43,44,1408,277,193,325,135,213,326,327,
            274,141,166,1709,798,1761,145,134,136,160,
            261,218,1450,221,1535,223,224,229,191,296,
            267,628,399,272,443,1239,702,20,17,21,
            18,518,320,981,606,20,17,21,18,518,
            43,44,670,654,1106,230,721,1186,1611,606,
            20,17,21,18,518,43,44,670,654,1106,
            72,721,1562,606,20,17,21,18,518,43,
            38,1826,606,20,17,21,18,518,43,44,
            670,654,1106,647,1575,606,20,17,21,18,
            518,43,44,670,654,1106,72,1606,53,218,
            1450,221,1535,223,224,229,227,1826,324,450,
            742,191,298,1859,606,20,17,21,18,518,
            43,44,670,654,1445,606,20,17,21,18,
            518,43,44,670,1522,218,1450,221,1535,223,
            224,229,28,198,200,151,458,804,1717,1859,
            813,818,1215,579,606,20,17,21,18,518,
            43,44,670,654,1446,606,20,17,21,18,
            518,43,44,670,654,1447,554,1181,228,199,
            200,606,20,17,21,18,518,43,44,670,
            654,1451,606,20,17,21,18,518,43,44,
            670,1526,502,291,844,1728,734,20,17,21,
            18,518,41,1826,1550,219,1450,221,1535,223,
            224,229,614,53,277,53,646,135,213,326,
            327,274,63,855,1763,839,1735,148,134,136,
            160,218,1450,221,1535,223,224,229,885,232,
            385,267,628,399,272,1239,135,213,326,327,
            1707,510,710,227,981,902,151,134,136,160,
            679,135,213,326,327,77,1360,1214,180,1727,
            743,154,134,136,160,435,20,17,21,18,
            518,43,36,435,20,17,21,18,518,43,
            36,53,243,505,1743,259,187,246,1023,350,
            1751,467,1764,743,659,333,435,20,17,21,
            18,518,43,36,606,20,17,21,18,518,
            43,37,1722,87,315,332,483,195,247,606,
            20,17,21,18,518,43,36,606,20,17,
            21,18,518,43,35,361,606,20,17,21,
            18,518,43,47,805,88,1183,606,20,17,
            21,18,518,43,46,606,20,17,21,18,
            518,43,45,274,385,606,20,17,21,18,
            518,34,390,743,1727,510,606,20,17,21,
            18,518,33,267,628,399,272,124,513,896,
            53,1214,809,1727,53,242,266,930,53,520,
            1805,369,63,53,805,1797,1767,243,707,369,
            254,213,326,327,369,682,1784,197,520,259,
            87,537,1023,445,1751,197,53,1655,87,537,
            197,541,932,87,537,1655,124,369,53,180,
            1655,933,529,57,682,1784,528,63,1759,369,
            771,274,1728,197,510,813,87,537,124,254,
            213,326,327,1655,550,197,1848,871,87,537,
            197,269,628,399,272,1655,715,169,855,845,
            1565,254,213,326,327,124,209,510,510,901,
            897,329,63,204,743,516,480,743,743,28,
            1664,1799,510,1214,197,1717,88,659,254,213,
            326,327,842,192,1565,209,244,516,1214,245,
            295,28,53,737,1532,1224,89,1717,63,1724,
            1799,259,53,659,1324,1727,1751,283,181,884,
            479,39,743,659,557,1033,259,192,1921,1065,
            1921,1751,87,712,1921,1921,1921,1921,1812,1224,
            1476,234,87,1636,297,1921,1921,1921,1921,1921,
            1921,1860,1921,1921,205,1921,1921,1921,1921,1921,
            1921,1921,1921,1921,1921,1921,939,1921,0,329,
            701,0,20,179,0,1,2147,0,1,2158,
            0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
	public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
	public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,0,6,7,8,9,
            10,11,12,13,14,0,16,17,18,19,
            20,21,22,0,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,0,1,
            40,41,42,43,44,45,46,47,48,49,
            50,51,0,53,54,55,0,1,0,3,
            2,5,0,0,8,9,10,5,12,13,
            14,0,1,2,16,17,0,0,73,0,
            1,23,3,6,7,70,71,0,32,33,
            34,35,36,37,15,72,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,0,1,52,3,60,5,0,61,
            8,9,10,0,12,13,14,64,65,66,
            67,8,9,10,76,12,13,14,0,68,
            64,65,66,67,32,33,34,35,36,37,
            0,0,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,0,1,
            0,3,60,5,0,0,8,9,10,0,
            12,13,14,8,9,10,0,12,13,14,
            0,1,0,3,56,57,4,23,0,0,
            32,33,34,35,36,37,56,57,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,54,55,0,1,0,3,60,0,
            4,0,8,9,10,61,12,13,14,8,
            9,10,0,12,13,14,4,77,78,0,
            64,65,66,67,62,63,32,33,34,35,
            36,37,0,0,40,41,42,43,44,45,
            46,47,48,49,50,51,0,53,54,55,
            0,1,2,3,4,5,6,7,62,63,
            0,11,2,0,0,5,16,17,18,19,
            20,21,22,74,24,25,26,27,28,29,
            30,31,32,23,38,0,1,2,3,4,
            5,6,7,0,0,0,11,4,0,39,
            5,16,17,18,19,20,21,22,58,24,
            25,26,27,28,29,30,31,32,0,0,
            0,1,2,3,4,5,6,7,0,11,
            0,11,2,38,4,15,16,17,18,19,
            20,21,22,58,24,25,26,27,28,29,
            30,31,0,23,0,62,63,59,4,0,
            8,9,10,69,12,13,14,0,1,2,
            75,4,52,79,80,81,82,83,84,85,
            86,87,88,0,32,33,34,35,36,37,
            23,72,40,41,42,43,44,45,46,47,
            48,49,50,51,0,1,2,3,4,5,
            6,7,0,59,0,11,2,5,4,0,
            16,17,18,19,20,21,22,0,24,25,
            26,27,28,29,30,31,0,23,0,0,
            1,2,3,4,5,6,7,11,0,0,
            11,39,0,5,5,16,17,18,19,20,
            21,22,58,24,25,26,27,28,29,30,
            31,0,1,2,0,1,2,3,4,0,
            6,7,0,56,57,11,38,39,39,0,
            16,17,18,19,20,21,22,58,24,25,
            26,27,28,29,30,31,0,1,89,3,
            0,0,1,2,3,4,0,6,7,0,
            68,15,11,0,1,2,15,16,17,18,
            19,20,21,22,60,24,25,26,27,28,
            29,30,31,0,1,2,3,4,38,6,
            7,0,0,1,11,3,74,0,15,16,
            17,18,19,20,21,22,15,24,25,26,
            27,28,29,30,31,0,1,2,3,4,
            23,6,7,0,0,1,11,3,69,6,
            7,16,17,18,19,20,21,22,0,24,
            25,26,27,28,29,30,31,0,1,2,
            3,4,0,6,7,0,0,1,11,3,
            0,6,7,16,17,18,19,20,21,22,
            0,24,25,26,27,28,29,30,31,0,
            1,2,3,4,0,6,7,0,0,5,
            11,0,1,23,3,16,17,18,19,20,
            21,22,15,24,25,26,27,28,29,30,
            31,0,1,2,3,4,0,6,7,0,
            4,0,11,39,0,1,38,16,17,18,
            19,20,21,22,0,24,25,26,27,28,
            29,30,31,0,1,2,3,4,0,6,
            7,0,0,0,11,0,1,5,3,16,
            17,18,19,20,21,22,15,24,25,26,
            27,28,29,30,31,0,1,2,3,4,
            59,6,7,59,0,0,11,2,0,70,
            71,16,17,18,19,20,21,22,0,24,
            25,26,27,28,29,30,31,0,23,2,
            58,4,5,0,0,8,9,10,0,12,
            13,14,0,0,0,1,2,0,4,0,
            23,8,9,10,5,12,13,14,0,32,
            33,34,35,36,37,23,39,23,0,0,
            2,0,38,0,0,32,33,34,35,36,
            37,8,9,10,0,12,13,14,0,56,
            57,23,8,9,10,0,12,13,14,0,
            0,52,0,56,57,32,33,34,35,36,
            37,73,38,0,0,15,32,33,34,35,
            36,37,8,9,10,0,12,13,14,0,
            0,0,0,8,9,10,5,12,13,14,
            69,0,0,0,0,15,32,33,34,35,
            36,37,8,9,10,0,12,13,14,0,
            0,0,0,8,9,10,23,12,13,14,
            0,1,2,0,15,5,15,15,0,0,
            0,68,0,0,0,0,0,0,15,0,
            0,0,0,23,15,15,0,0,0,0,
            0,0,0,0,61,0,75,0,0,39,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
	public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            1921,1932,1710,1933,1639,68,1624,1363,2135,2136,
            2137,1647,2251,655,2252,62,1696,1685,1506,1934,
            1935,1936,1937,66,1226,1123,2238,2239,2240,1326,
            1171,1115,2084,2085,2083,2138,2086,2082,1921,2159,
            2089,2094,2093,2091,2092,2090,2095,2096,2088,2097,
            2098,2099,1,1383,653,515,1921,1,32,1,
            1816,191,1921,59,1,1,1,1929,1,1,
            1,1,2147,1502,1947,1948,61,51,612,1921,
            1932,1842,1933,1284,724,1385,1372,253,1,1,
            1,1,1,1,1523,1334,1,1,1,1,
            1,1,1,1,1,1,1,1,191,1,
            1,1,1921,1,1928,1,2117,190,182,441,
            1,1,1,1921,1,1,1,1481,1465,1454,
            1414,2135,2136,2137,439,2251,655,2252,54,1151,
            1481,1465,1454,1414,1,1,1,1,1,1,
            58,183,1,1,1,1,1,1,1,1,
            1,1,1,1,190,1,1,1,1921,1,
            72,1,2117,191,1921,248,1,1,1,286,
            1,1,1,2135,2136,2137,60,2251,655,2252,
            1921,1932,48,1933,1425,1492,1675,1075,1921,1921,
            1,1,1,1,1,1,1425,1492,1,1,
            1,1,1,1,1,1,1,1,1,1,
            191,1,1,1,1921,1932,50,1933,2117,70,
            1675,249,2135,2136,2137,1318,2251,655,2252,1,
            1,1,1921,1,1,1,400,406,1852,1921,
            1481,1465,1454,1414,1667,1656,2084,2085,2083,2138,
            2086,2082,1921,1921,2089,2094,2093,2091,2092,2090,
            2095,2096,2088,2097,2098,2099,88,1383,653,515,
            1,1932,1710,1933,1585,1925,1624,1363,1667,1656,
            1,1647,1503,1921,1921,1927,1696,1685,1506,1934,
            1935,1936,1937,471,1226,1123,2238,2239,2240,1326,
            1171,1115,680,630,760,1921,1932,1710,1933,1616,
            1925,1624,1363,49,43,1921,1647,1675,1,1926,
            1931,1696,1685,1506,1934,1935,1936,1937,1924,1226,
            1123,2238,2239,2240,1326,1171,1115,1054,64,67,
            1,1932,1710,1933,1639,29,1624,1363,1921,1349,
            265,1647,1503,1396,1,3109,1696,1685,1506,1934,
            1935,1936,1937,1924,1226,1123,2238,2239,2240,1326,
            1171,1115,129,630,1,1667,1656,2179,253,1921,
            2135,2136,2137,991,2251,655,2252,262,2147,1272,
            1930,1,29,970,949,928,907,886,844,865,
            823,802,781,1921,2084,2085,2083,2138,2086,2082,
            630,1334,2089,2094,2093,2091,2092,2090,2095,2096,
            2088,2097,2098,2099,1921,1932,1710,1933,1639,1925,
            1624,1363,1921,2179,268,1647,1503,1927,253,1921,
            1696,1685,1506,1934,1935,1936,1937,57,1226,1123,
            2238,2239,2240,1326,1171,1115,65,630,1921,1921,
            1932,1710,1933,1593,1925,1624,1363,1349,1921,1,
            1647,1926,1921,1927,90,1696,1685,1506,1934,1935,
            1936,1937,1924,1226,1123,2238,2239,2240,1326,1171,
            1115,1,2147,1502,1921,1,1,1,1,1921,
            1,1,71,1425,1492,1,1861,1926,90,1921,
            1,1,1,1,1,1,1,1924,1,1,
            1,1,1,1,1,1,1921,1932,1908,1933,
            256,1,1932,1710,1933,1639,1921,1624,1363,211,
            1012,1525,1647,253,2147,1502,3109,1696,1685,1506,
            1934,1935,1936,1937,2237,1226,1123,2238,2239,2240,
            1326,1171,1115,1921,1932,1710,1933,1639,1211,1624,
            1363,1921,185,3233,1647,3233,471,271,3109,1696,
            1685,1506,1934,1935,1936,1937,3109,1226,1123,2238,
            2239,2240,1326,1171,1115,1921,1932,1710,1933,1639,
            630,1624,1363,53,184,3239,1647,3239,1095,1284,
            724,1696,1685,1506,1934,1935,1936,1937,1921,1226,
            1123,2238,2239,2240,1326,1171,1115,1921,1932,1718,
            1933,1639,1921,1624,1363,52,206,3240,1647,3240,
            1921,1284,724,1696,1685,1506,1934,1935,1936,1937,
            329,1226,1123,2238,2239,2240,1326,1171,1115,1921,
            1932,1723,1933,1639,1,1624,1363,325,30,1927,
            1647,208,1932,1909,1933,1696,1685,1506,1934,1935,
            1936,1937,3109,1226,1123,2238,2239,2240,1326,1171,
            1115,1921,1932,1746,1933,1639,1921,1624,1363,63,
            1274,1,1647,1926,1,1918,489,1696,1685,1506,
            1934,1935,1936,1937,1921,1226,1123,2238,2239,2240,
            1326,1171,1115,1921,1932,1758,1933,1639,1921,1624,
            1363,323,1921,1921,1647,207,531,1925,531,1696,
            1685,1506,1934,1935,1936,1937,3109,1226,1123,2238,
            2239,2240,1326,1171,1115,1,1932,1710,1933,1639,
            2178,1624,1363,2179,1921,270,1647,380,1921,1385,
            1372,1696,1685,1506,1934,1935,1936,1937,1921,1226,
            1123,2238,2239,2240,1326,1171,1115,20,630,1912,
            1924,1912,1912,56,30,179,179,179,69,179,
            179,179,220,130,268,2147,1272,55,253,285,
            1912,2135,2136,2137,519,2251,655,2252,1921,179,
            179,179,179,179,179,630,1912,630,222,1921,
            417,1921,1950,131,207,2084,2085,2083,2138,2086,
            2082,2135,2136,2137,132,2251,655,2252,1921,1425,
            1492,630,2135,2136,2137,1921,2251,655,2252,1921,
            321,519,1921,1425,1492,2084,2085,2083,2138,2086,
            2082,612,3035,201,133,3109,2084,2085,2083,2138,
            2086,2082,2135,2136,2137,250,2251,655,2252,1921,
            42,1,1921,1,1,1,1931,1,1,1,
            591,1921,1921,292,251,3109,2084,2085,2083,2138,
            2086,2082,2135,2136,2137,252,2251,655,2252,1921,
            1921,1921,1921,2135,2136,2137,1131,2251,655,2252,
            1,1915,1272,189,1398,1927,1601,1714,1921,189,
            189,1187,1921,1921,1921,1921,1921,1921,185,1921,
            1921,1921,1921,630,184,206,1921,1921,1921,1921,
            1921,1921,1921,1921,1411,1921,1930,1921,1921,1926
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
	public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            443,1,89,69,89,89,89,89,89,89,
            89,89,89,89,89,89,119,31,51,48,
            55,53,61,59,63,62,65,64,37,89,
            119,119,119,119,318,318,263,119,354,354,
            472,89,89,89,89,89,89,89,89,89,
            89,89,89,89,89,89,89,89,89,89,
            89,89,89,89,89,89,89,89,89,89,
            89,89,318,318,318,318,29,267,80,321,
            316,315,235,112,247,27,247,27,27,247,
            27,247,139,269,318,73,48,48,53,53,
            53,53,51,51,59,55,55,62,61,402,
            64,63,195,195,195,195,387,29,263,267,
            83,73,162,170,318,404,324,170,27,354,
            354,27,354,89,387,5,267,255,162,73,
            169,80,318,261,139,317,326,73,170,29,
            357,29,390,5,255,255,89,89,73,170,
            321,397,396,267,326,318,29,357,390,390,
            392,77,255,162,73,73,318,404,324,261,
            357,387,436,357,390,392,467,392,387,3,
            470,354,89,76,162,255,326,357,438,392,
            387,89,354,31,7,73,354,89,255,318,
            317,387,231,89,230,108,267,387,73,355,
            438,89,108
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
	public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            89,0,5,52,23,61,16,17,11,4,
            6,7,24,25,18,29,30,31,2,19,
            20,21,22,26,27,28,1,3,15,0,
            23,2,61,76,16,17,69,79,80,81,
            82,83,85,84,86,87,88,4,62,63,
            6,7,57,56,64,65,66,67,70,71,
            11,72,73,74,52,75,77,78,68,39,
            89,38,58,5,0,69,23,61,0,58,
            5,32,8,9,10,12,13,14,19,20,
            21,22,26,27,28,3,16,17,11,6,
            7,24,25,18,29,30,31,4,2,1,
            0,5,68,38,58,39,75,23,18,19,
            20,21,22,2,16,17,11,4,6,7,
            24,25,26,27,28,29,30,31,1,3,
            53,54,55,48,40,45,43,44,42,41,
            46,47,49,50,51,37,34,32,33,36,
            35,8,9,10,13,12,14,0,32,58,
            5,16,17,11,4,6,7,24,25,18,
            29,30,31,2,1,3,19,20,21,22,
            26,27,28,0,11,4,6,7,62,63,
            56,57,64,65,66,67,70,71,72,73,
            74,77,78,69,79,80,81,82,83,84,
            85,86,87,88,58,39,52,89,15,68,
            75,5,38,0,48,40,45,43,44,42,
            41,46,47,49,50,51,68,75,37,34,
            32,33,36,35,8,9,10,12,13,14,
            38,1,5,39,2,23,4,0,9,32,
            37,10,36,35,34,8,33,12,13,14,
            61,76,16,17,11,6,7,62,63,56,
            57,64,65,66,67,70,71,72,73,74,
            77,78,69,79,80,81,82,83,84,85,
            86,87,88,4,2,23,38,39,5,0,
            4,2,23,39,5,33,40,8,41,53,
            34,42,35,43,44,36,9,45,46,32,
            54,37,55,47,48,10,49,50,51,12,
            13,14,59,3,1,0,33,40,8,41,
            53,34,42,35,43,44,36,9,45,46,
            32,54,37,55,47,48,10,49,50,51,
            1,3,12,13,14,60,5,52,0,1,
            3,5,52,38,0,2,5,38,39,75,
            23,68,0,4,33,40,8,41,53,34,
            42,35,43,44,36,9,45,46,32,54,
            37,55,47,48,10,49,50,51,1,3,
            12,13,14,59,0,75,5,4,1,2,
            68,0,18,19,20,21,22,1,3,2,
            16,17,11,4,6,7,24,25,26,27,
            28,29,30,31,60,0,5,38,52,69,
            0,5,39,18,19,20,21,22,1,3,
            2,16,17,11,4,6,7,24,25,26,
            27,28,29,30,31,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
	public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static byte nasb[] = {0,
            99,35,26,35,26,26,26,26,26,26,
            26,26,26,26,26,26,102,35,35,35,
            35,35,35,35,35,35,35,35,35,26,
            102,102,102,102,10,10,85,1,21,21,
            122,103,26,26,26,26,26,26,26,26,
            26,26,26,26,26,26,26,26,103,26,
            26,26,26,26,26,26,26,26,26,26,
            26,26,10,10,10,10,12,57,48,84,
            15,15,65,52,66,19,66,82,82,66,
            81,66,60,35,10,50,35,35,35,35,
            35,35,35,35,35,35,35,35,35,35,
            35,35,12,12,12,12,79,35,106,35,
            54,50,110,49,10,89,9,49,7,7,
            7,7,7,26,44,79,35,42,110,50,
            49,36,10,75,28,35,91,50,49,68,
            79,35,79,24,42,79,26,26,50,49,
            74,15,15,57,91,10,35,114,79,7,
            97,17,79,110,50,50,10,89,9,38,
            79,44,94,70,7,97,35,35,44,23,
            35,7,26,46,110,36,118,114,77,97,
            44,26,7,112,25,50,7,26,36,10,
            10,44,95,26,35,77,57,44,50,35,
            77,26,40
        };
    };
    public final static byte nasb[] = Nasb.nasb;
    @Override
	public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            80,78,77,68,76,75,1,0,11,21,
            0,38,32,0,28,0,100,0,91,0,
            73,0,88,11,38,5,0,80,79,78,
            77,68,76,75,0,23,0,50,49,42,
            40,29,0,46,0,102,0,11,5,22,
            0,103,0,5,11,0,29,54,0,68,
            63,64,65,66,56,33,0,92,0,11,
            37,70,0,21,50,49,42,40,11,0,
            94,69,0,21,49,50,11,0,29,54,
            11,27,0,11,72,0,62,0,11,89,
            0,37,11,31,0,50,49,29,0,59,
            0,98,0,82,11,37,0,95,11,27,
            0,11,90,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
	public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            85,2,86,9,87,10,11,48,64,76,
            8,96,97,98,3,6,7,68,81,82,
            83,84,1,12,13,93,94,95,100,101,
            102,69,44,55,60,63,72,42,90,47,
            52,56,61,62,66,67,74,75,78,79,
            80,91,54,70,73,16,17,89,30,107,
            4,14,15,18,19,20,21,29,31,22,
            23,24,25,26,92,5,27,28,32,33,
            34,35,36,37,38,39,40,41,108,45,
            46,49,50,51,53,57,58,59,65,71,
            77,88,99,103,104,105,106
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
	public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            114,0,0,0,116,120,121,122,123,124,
            0,125,126,127,128,129,130,131,0,132,
            111,110,142,0,0,0,135,163,0,0,
            115,119,141,0,0,0,154,0,159,161,
            0,162,0,0,0,112,134,172,173,174,
            0,118,150,160,169,144,0,164,167,168,
            171,0,145,146,147,148,149,151,0,153,
            158,113,117,133,136,137,138,139,140,143,
            0,152,156,0,0,157,166,176,109,0,
            0,0,155,0,165,170,175,0,177,178,
            0,179,180,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
	public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            120,151,130,59,69,159,26,186,35,87,
            105,75,6,12,16,40,83,52,141,202,
            212,216,52,52,195,52,1,1,1,44,
            47,92,115,47,220,20,145,206,177,137,
            165,165,165,165,165,95,95,95
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
	public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            128,128,128,4,4,128,32,192,10,4,
            10,80,10,10,10,10,4,4,139,10,
            10,4,56,80,199,65,4,4,4,10,
            50,4,10,118,10,23,148,209,180,139,
            167,169,171,173,175,102,97,110
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
	public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            65,63,65,28,28,63,32,111,51,28,
            45,28,6,6,6,51,28,28,70,6,
            5,5,28,28,19,28,103,102,101,49,
            61,28,42,53,3,88,70,5,112,70,
            79,78,77,76,75,45,43,45
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
	public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            52,52,52,58,58,52,52,95,39,58,
            39,19,39,39,39,39,58,58,75,39,
            39,58,4,19,68,32,58,58,58,39,
            2,58,39,1,39,69,1,39,101,75,
            1,53,54,54,48,2,2,2
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
	public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static byte scopeStateSet[] = {
            28,28,28,32,32,28,19,-1,36,32,
            9,32,43,43,43,36,32,32,5,43,
            43,43,32,32,76,32,17,1,3,36,
            38,32,9,11,43,103,5,43,-1,5,
            29,29,29,29,29,9,9,9
        };
    };
    public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
	public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            154,23,0,110,0,159,2,31,0,111,
            0,159,2,30,0,159,2,29,0,206,
            118,0,31,149,0,169,204,118,15,145,
            0,112,0,0,165,118,2,156,0,165,
            118,2,0,168,2,0,161,118,0,172,
            0,194,118,23,0,9,110,0,127,32,
            194,118,23,0,69,132,110,0,127,194,
            118,32,23,0,194,118,32,23,0,132,
            110,0,127,32,23,0,127,194,118,23,
            0,127,23,0,149,0,2,0,165,111,
            0,2,111,0,165,118,2,149,0,2,
            0,164,111,0,160,2,0,159,0,169,
            192,118,15,108,201,53,0,112,0,169,
            192,118,15,201,53,0,144,0,113,0,
            200,118,144,0,118,144,0,155,113,0,
            188,118,15,199,108,198,175,0,188,118,
            15,198,175,0,187,0,148,0,147,0,
            146,0,145,0,144,0,214,94,0,77,
            2,115,111,113,0,214,128,138,2,98,
            0,53,0,0,138,78,125,0,29,132,
            0,159,2,18,0,159,2,0,111,119,
            0,197,2,112,0,138,23,112,0,138,
            2,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
	public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            555,0,424,0,1797,1224,1763,0,1476,520,
            1396,1502,1360,1272,1214,0,655,0,591,489,
            450,1809,1787,1410,1244,398,0,1184,510,369,
            0,1535,1450,628,399,520,1743,1272,1214,1503,
            1655,0,1616,1593,1585,471,406,1334,612,1385,
            1372,1349,1492,1425,1481,1465,1454,1414,1675,1667,
            1656,1284,724,1696,1685,1647,1639,1624,1363,1226,
            1123,1506,1326,1171,1115,1187,1151,1131,591,1095,
            1075,1054,1033,737,1012,701,680,630,991,970,
            949,928,907,886,865,844,823,802,781,369,
            760,659,489,450,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
	public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,196,118,181,31,30,29,18,25,24,
            7,6,4,11,17,16,2,112,116,115,
            119,117,121,120,123,122,125,124,113,38,
            2,2,2,2,159,138,144,118,76,61,
            2,23,7,6,63,62,4,67,66,65,
            64,56,57,11,71,70,73,72,78,77,
            74,88,87,86,84,85,83,82,81,80,
            79,69,159,159,159,159,128,118,23,2,
            157,156,182,13,183,175,184,55,54,185,
            53,186,187,108,197,138,115,115,117,117,
            117,117,116,116,120,119,119,122,121,138,
            124,123,128,128,128,128,15,145,161,136,
            32,127,118,4,168,118,2,23,198,176,
            176,201,176,68,118,15,136,4,118,127,
            194,166,165,134,118,167,118,154,4,108,
            15,108,15,118,4,136,194,32,127,4,
            2,147,149,118,38,165,199,118,15,118,
            204,118,136,118,127,127,160,118,2,161,
            15,188,144,189,118,192,108,193,169,38,
            206,61,23,207,118,166,118,118,118,192,
            169,69,38,153,69,154,61,23,166,165,
            202,188,200,68,160,2,118,169,154,38,
            38,68,161
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
	public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            "{",
            ".",
            "->",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "auto",
            "break",
            "case",
            "char",
            "const",
            "continue",
            "default",
            "do",
            "double",
            "else",
            "enum",
            "extern",
            "float",
            "for",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "register",
            "restrict",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "struct",
            "switch",
            "typedef",
            "union",
            "unsigned",
            "void",
            "volatile",
            "while",
            "_Bool",
            "_Complex",
            "_Imaginary",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "MYTHREAD",
            "THREADS",
            "UPC_MAX_BLOCKSIZE",
            "relaxed",
            "shared",
            "strict",
            "upc_barrier",
            "upc_localsizeof",
            "upc_blocksizeof",
            "upc_elemsizeof",
            "upc_notify",
            "upc_fence",
            "upc_wait",
            "upc_forall",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "no_cast_start",
            "]",
            ")",
            "}",
            ";",
            "identifier_token",
            "expression",
            "postfix_expression",
            "member_name",
            "type_id",
            "initializer_list",
            "unary_expression",
            "cast_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "expression_list_actual",
            "constant_expression",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "struct_or_union_declaration_sp" +
            "ecifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "typdef_name_declaration_specif" +
            "iers",
            "no_type_declaration_specifier",
            "type_qualifier",
            "no_type_declaration_specifiers",
            "simple_type_specifier",
            "struct_or_union_specifier",
            "elaborated_specifier",
            "enum_specifier",
            "type_name_specifier",
            "initializer",
            "declarator",
            "struct_or_union",
            "struct_declaration_list",
            "struct_declaration",
            "specifier_qualifier_list",
            "struct_declarator_list",
            "complete_struct_declarator",
            "enumerator_list",
            "enumerator",
            "direct_declarator",
            "pointer_seq",
            "array_direct_declarator",
            "basic_direct_declarator",
            "array_modifier",
            "parameter_type_list",
            "identifier_list",
            "array_modifier_type_qualifiers",
            "type_qualifier_list",
            "parameter_list",
            "parameter_declaration",
            "complete_parameter_declarator",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "initializer_seq",
            "designated_initializer",
            "designation",
            "designator_list",
            "designator",
            "layout_qualifier"
        };
    };
    public final static String name[] = Name.name;
    @Override
	public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 60,
           SCOPE_UBOUND      = 47,
           SCOPE_SIZE        = 48,
           MAX_NAME_LENGTH   = 38;

    @Override
	public final int getErrorSymbol() { return ERROR_SYMBOL; }
    @Override
	public final int getScopeUbound() { return SCOPE_UBOUND; }
    @Override
	public final int getScopeSize() { return SCOPE_SIZE; }
    @Override
	public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 223,
           NT_OFFSET         = 107,
           LA_STATE_OFFSET   = 2289,
           MAX_LA            = 2,
           NUM_RULES         = 368,
           NUM_NONTERMINALS  = 131,
           NUM_SYMBOLS       = 238,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 1603,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 89,
           EOLT_SYMBOL       = 89,
           ACCEPT_ACTION     = 1908,
           ERROR_ACTION      = 1921;

    public final static boolean BACKTRACK = true;

    @Override
	public final int getNumStates() { return NUM_STATES; }
    @Override
	public final int getNtOffset() { return NT_OFFSET; }
    @Override
	public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    @Override
	public final int getMaxLa() { return MAX_LA; }
    @Override
	public final int getNumRules() { return NUM_RULES; }
    @Override
	public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    @Override
	public final int getNumSymbols() { return NUM_SYMBOLS; }
    @Override
	public final int getSegmentSize() { return SEGMENT_SIZE; }
    @Override
	public final int getStartState() { return START_STATE; }
    @Override
	public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    @Override
	public final int getEoftSymbol() { return EOFT_SYMBOL; }
    @Override
	public final int getEoltSymbol() { return EOLT_SYMBOL; }
    @Override
	public final int getAcceptAction() { return ACCEPT_ACTION; }
    @Override
	public final int getErrorAction() { return ERROR_ACTION; }
    @Override
	public final boolean isValidForParser() { return isValidForParser; }
    @Override
	public final boolean getBacktrack() { return BACKTRACK; }

    @Override
	public final int originalState(int state) {
        return -baseCheck[state];
    }
    @Override
	public final int asi(int state) {
        return asb[originalState(state)];
    }
    @Override
	public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    @Override
	public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    @Override
	public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    @Override
	public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    @Override
	public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
